/**
* Essential OCL Keyword Lexer
* <copyright>
*
* Copyright (c) 2005, 2009 IBM Corporation and others.
* All rights reserved.   This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*   IBM - Initial API and implementation
*   E.D.Willink - Lexer and Parser refactoring to support extensibility and flexible error handling
*   E.D.Willink - Bug 285633, 292112
*   Adolfo Sanchez-Barbudo Herrera (Open Canarias) - LPG v 2.0.17 adoption (242153)
*   Adolfo Sanchez-Barbudo Herrera (Open Canarias) - Introducing new LPG templates (299396) 
*
* </copyright>
*
*
*/
/**
* Complete OCL Keyword Lexer
* <copyright>
*
* Copyright (c) 2005, 2009 IBM Corporation and others.
* All rights reserved.   This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*   IBM - Initial API and implementation
*   E.D.Willink - Bug 292112
*   Adolfo Sanchez-Barbudo Herrera (Open Canarias) - LPG v 2.0.17 adoption (242153)
*   Adolfo Sanchez-Barbudo Herrera (Open Canarias) - Introducing new LPG templates (299396)
*
* </copyright>
*/

package edu.pku.sei.ocl.parser;

public class OCLKWLexerprs implements lpg.runtime.ParseTable, OCLKWLexersym {
    public final static int ERROR_SYMBOL = 0;
    public final int getErrorSymbol() { return ERROR_SYMBOL; }

    public final static int SCOPE_UBOUND = 0;
    public final int getScopeUbound() { return SCOPE_UBOUND; }

    public final static int SCOPE_SIZE = 0;
    public final int getScopeSize() { return SCOPE_SIZE; }

    public final static int MAX_NAME_LENGTH = 0;
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int NUM_STATES = 187;
    public final int getNumStates() { return NUM_STATES; }

    public final static int NT_OFFSET = 56;
    public final int getNtOffset() { return NT_OFFSET; }

    public final static int LA_STATE_OFFSET = 289;
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }

    public final static int MAX_LA = 1;
    public final int getMaxLa() { return MAX_LA; }

    public final static int NUM_RULES = 49;
    public final int getNumRules() { return NUM_RULES; }

    public final static int NUM_NONTERMINALS = 2;
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }

    public final static int NUM_SYMBOLS = 58;
    public final int getNumSymbols() { return NUM_SYMBOLS; }

    public final static int SEGMENT_SIZE = 8192;
    public final int getSegmentSize() { return SEGMENT_SIZE; }

    public final static int START_STATE = 50;
    public final int getStartState() { return START_STATE; }

    public final static int IDENTIFIER_SYMBOL = 0;
    public final int getIdentifier_SYMBOL() { return IDENTIFIER_SYMBOL; }

    public final static int EOFT_SYMBOL = 36;
    public final int getEoftSymbol() { return EOFT_SYMBOL; }

    public final static int EOLT_SYMBOL = 57;
    public final int getEoltSymbol() { return EOLT_SYMBOL; }

    public final static int ACCEPT_ACTION = 239;
    public final int getAcceptAction() { return ACCEPT_ACTION; }

    public final static int ERROR_ACTION = 240;
    public final int getErrorAction() { return ERROR_ACTION; }

    public final static boolean BACKTRACK = false;
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int getStartSymbol() { return lhs(0); }
    public final boolean isValidForParser() { return OCLKWLexersym.isValidForParser; }


    public interface IsNullable {
        public final static byte isNullable[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0
        };
    };
    public final static byte isNullable[] = IsNullable.isNullable;
    public final boolean isNullable(int index) { return isNullable[index] != 0; }

    public interface ProsthesesIndex {
        public final static byte prosthesesIndex[] = {0,
            2,1
        };
    };
    public final static byte prosthesesIndex[] = ProsthesesIndex.prosthesesIndex;
    public final int prosthesesIndex(int index) { return prosthesesIndex[index]; }

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static byte baseCheck[] = {0,
            4,2,4,4,5,3,2,3,3,7,
            3,2,4,5,3,3,8,10,10,6,
            7,16,4,7,5,6,7,10,4,7,
            3,3,4,4,7,7,10,3,6,4,
            10,6,8,6,8,3,4,6,5
        };
    };
    public final static byte baseCheck[] = BaseCheck.baseCheck;
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static byte rhs[] = baseCheck;
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,52,81,87,26,88,96,46,13,37,
            82,98,100,101,51,103,56,64,18,107,
            54,104,31,109,50,68,42,69,112,113,
            71,116,75,119,120,121,122,124,127,129,
            131,136,137,139,142,144,145,147,148,77,
            149,153,158,157,162,163,164,166,167,168,
            169,78,172,174,179,182,176,185,184,187,
            190,191,192,195,196,201,202,205,206,14,
            208,210,215,216,218,220,219,221,79,224,
            226,228,232,234,237,240,236,241,242,246,
            244,248,252,250,255,257,259,262,260,264,
            269,267,276,278,280,281,283,287,266,284,
            289,290,292,295,297,293,304,294,302,306,
            307,309,310,311,313,320,318,322,323,325,
            331,324,332,339,333,341,342,346,349,343,
            350,353,354,355,356,361,358,365,362,367,
            368,370,373,379,380,371,384,385,387,389,
            388,391,395,398,396,400,377,405,402,409,
            410,416,414,419,316,420,421,424,240,240
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,0,0,14,15,16,0,18,7,
            20,4,22,23,24,0,1,27,28,12,
            0,31,32,33,34,22,0,12,8,26,
            4,0,29,7,8,0,5,2,35,0,
            0,2,7,0,5,0,15,16,8,4,
            7,11,7,0,1,12,3,0,0,1,
            0,3,2,3,0,8,0,0,0,3,
            0,0,8,6,6,18,0,0,1,15,
            4,0,14,12,17,0,1,0,1,0,
            0,25,0,0,5,5,0,1,0,7,
            7,0,0,5,2,0,36,2,0,0,
            0,0,4,0,5,14,0,1,0,9,
            0,0,11,10,4,0,0,2,0,3,
            2,0,14,0,0,2,0,0,0,0,
            9,7,0,5,2,8,0,0,2,13,
            3,0,0,0,3,0,0,0,0,1,
            8,0,9,0,9,0,10,4,0,12,
            2,0,1,0,0,14,0,12,4,0,
            0,0,6,3,0,0,0,14,3,10,
            0,0,2,2,0,0,1,0,1,0,
            6,2,21,19,0,0,2,0,0,0,
            0,6,2,0,1,0,1,0,10,12,
            11,0,5,0,3,0,0,4,2,0,
            0,0,3,0,3,0,1,0,8,0,
            15,0,1,4,0,1,0,10,0,0,
            17,0,1,0,5,0,0,0,0,4,
            7,13,16,5,8,0,1,0,1,0,
            0,1,0,0,5,3,0,1,0,0,
            2,0,0,0,0,6,0,6,15,5,
            8,0,6,0,1,0,0,1,0,0,
            0,6,0,20,13,0,6,0,10,0,
            1,0,0,0,0,4,17,12,11,5,
            0,0,0,21,11,13,6,6,0,1,
            0,0,0,11,3,0,1,7,0,0,
            8,3,0,0,0,0,4,0,3,10,
            0,0,9,9,0,5,0,0,11,0,
            0,7,0,1,5,9,0,10,0,0,
            19,2,4,0,0,1,0,0,0,6,
            0,5,4,23,0,0,9,0,1,0,
            6,0,7,13,0,1,30,0,0,0,
            9,3,13,0,5,0,1,4,0,0,
            0,3,0,0,4,2,0,8,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            240,74,69,75,73,70,76,72,54,56,
            77,57,240,240,59,68,53,240,55,85,
            71,101,63,67,58,240,80,66,65,100,
            240,64,61,60,62,158,240,79,247,160,
            86,240,157,87,88,240,111,83,159,240,
            240,108,84,240,107,240,242,112,94,97,
            104,93,96,240,99,103,98,240,240,114,
            240,113,117,116,240,109,240,12,240,255,
            240,240,119,142,169,110,240,240,81,278,
            78,240,168,89,143,240,82,240,90,240,
            240,134,240,240,91,92,240,102,240,95,
            105,240,240,106,115,240,239,118,240,240,
            240,240,120,240,121,286,240,272,240,122,
            240,240,123,124,126,240,240,127,240,128,
            129,240,125,240,240,131,240,240,240,240,
            130,132,240,135,136,133,240,240,137,256,
            251,240,240,240,249,240,240,240,240,141,
            248,240,246,240,138,240,139,145,240,140,
            146,240,287,240,240,144,240,147,148,240,
            240,240,150,152,240,240,240,149,273,151,
            240,240,154,263,240,240,156,240,161,240,
            155,162,274,153,240,240,163,240,240,240,
            240,164,269,240,244,240,253,240,167,165,
            166,240,243,31,280,240,240,170,171,240,
            240,240,172,240,174,240,175,240,173,240,
            241,240,177,178,240,265,240,289,240,240,
            176,240,181,240,182,240,240,240,240,191,
            183,180,179,184,185,240,186,240,187,240,
            240,189,240,240,188,190,240,254,240,240,
            192,240,240,240,240,193,240,194,245,288,
            284,240,195,240,279,240,240,199,240,240,
            240,198,240,196,197,240,202,240,200,240,
            203,240,240,240,240,205,201,235,204,206,
            240,240,240,266,208,260,207,209,240,210,
            240,240,240,282,275,240,276,211,240,240,
            261,212,240,240,240,240,214,240,216,213,
            240,240,267,215,240,264,240,240,217,240,
            240,218,240,220,285,270,240,250,240,240,
            219,222,221,240,240,257,240,240,240,224,
            240,283,225,223,240,240,226,240,229,240,
            228,240,230,227,240,281,232,240,240,240,
            268,259,231,240,258,240,277,233,240,240,
            240,234,240,240,237,262,240,236
        };
    };
    public final static char termAction[] = TermAction.termAction;
    public final int termAction(int index) { return termAction[index]; }
    public final int asb(int index) { return 0; }
    public final int asr(int index) { return 0; }
    public final int nasb(int index) { return 0; }
    public final int nasr(int index) { return 0; }
    public final int terminalIndex(int index) { return 0; }
    public final int nonterminalIndex(int index) { return 0; }
    public final int scopePrefix(int index) { return 0;}
    public final int scopeSuffix(int index) { return 0;}
    public final int scopeLhs(int index) { return 0;}
    public final int scopeLa(int index) { return 0;}
    public final int scopeStateSet(int index) { return 0;}
    public final int scopeRhs(int index) { return 0;}
    public final int scopeState(int index) { return 0;}
    public final int inSymb(int index) { return 0;}
    public final String name(int index) { return null; }
    public final int originalState(int state) { return 0; }
    public final int asi(int state) { return 0; }
    public final int nasi(int state) { return 0; }
    public final int inSymbol(int state) { return 0; }

    /**
     * assert(! goto_default);
     */
    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    /**
     * assert(! shift_default);
     */
    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
